Data processing systems used for complex real-time control systems, for example, automotive and robotics control systems, are requiring finer control, faster system response, and more I/O capability. As a result, the need for more, faster, and improved I/O processing by the data processing system has grown significantly. Microcomputers are expected to provide higher resolution outputs, both digital and analog, for more accurate control. For higher frequency control functions, a central processing unit (CPU) of a data processing system may not be capable of responding at the rate needed, due to processing overhead. A solution is needed which provides more, faster, and improved I/O processing capability without overburdening the CPU.
In addition, microcomputers are required to be very flexible in order to accommodate a wide variety of applications. In microcomputers of the past, flexibility in I/O processing has been provided through CPU software which operates on ports or simple timer channels. Analog and digital I/O were linked through CPU software as well. However, I/O bandwidth was sacrificed primarily due to system overhead since the CPU was involved in all I/O processing. Thus, a solution is needed which provides both flexibility and increased I/O capability.